home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Small Eiffel 0.4.8 / lib_std / std_file_read_write.e < prev    next >
Encoding:
Text File  |  1997-04-13  |  1.3 KB  |  64 lines  |  [TEXT/ttxt]

  1. -- Part of SmallEiffel -- Read DISCLAIMER file -- Copyright (C) 
  2. -- Dominique COLNET and Suzanne COLLIN -- colnet@loria.fr
  3. --
  4. -- Originally written by Emmanuel CECCHET --
  5. --
  6. class STD_FILE_READ_WRITE
  7. --
  8. inherit 
  9.    STD_FILE_READ
  10.       undefine connect_to, disconnect 
  11.       redefine read_character, end_of_input
  12.       end;
  13.    STD_FILE_WRITE
  14.       redefine connect_to, put_character
  15.       end;
  16.    
  17. creation connect_to
  18.    
  19. feature 
  20.    
  21.    connect_to(new_path: STRING) is
  22.       local
  23.      rewrite_fic : STD_FILE_WRITE ;
  24.       do
  25.      mode := "r+";
  26.      input_stream := fopen(new_path,mode);
  27.      if input_stream /= Void then
  28.         path := new_path;
  29.         output_stream := input_stream;
  30.      end;
  31.       end;
  32.    
  33.    read_character is
  34.       local
  35.      err: INTEGER;
  36.       do
  37.      err := fflush(output_stream);
  38.      last_character_memory := fgetc(input_stream);
  39.       end;
  40.    
  41.    put_character(c: CHARACTER) is
  42.       local
  43.      err: CHARACTER;
  44.      err2: INTEGER;
  45.       do
  46.      err2 := fflush(output_stream);
  47.      err := fputc(c,output_stream);
  48.      if err /= c then
  49.         std_error.put_string("Error while writing character."); 
  50.         crash;
  51.      end;
  52.       end;
  53.    
  54.    end_of_input: BOOLEAN is
  55.       local
  56.      err: INTEGER;
  57.       do
  58.      err := fflush(output_stream);
  59.      Result := feof(input_stream)
  60.       end;
  61.    
  62. end -- STD_FILE_READ_WRITE
  63.  
  64.